Traffic Performance Optimization Overview


Traffic Performance Optimization Overview
 
 
This chapter provides an overview of the Traffic Performance Optimization (TPO) in-line service.
TPO is a licensed in-line service supported on the Cisco ASR 5000 chassis running any of the following products:
 
The following topics are covered in this chapter:
 
 
Overview
Though TCP is a widely accepted protocol in use today, it is optimized only for wired networks. Due to inherent reliability of wired networks, TCP implicitly assumes that any packet loss is due to network congestion and consequently invokes congestion control measures. However, wireless links are known to experience sporadic and usually temporary losses due to several reasons, including the following, which also trigger TCP congestion control measures resulting in poor TCP performance.
Reasons for delay variability over wireless links include:
 
The TPO in-line service uses a combination of TCP and HTTP optimization techniques to improve TCP performance over wireless links.
 
TPO Deployment
TPO uses the Enhanced Charging Service (ECS) framework for TCP Proxy functionality, and as depicted in the following figure, it is part of the ECS module in the Gateway.
 
TPO Deployment
TPO uses the TCP Proxy to split end-to-end TCP connections between the client and server into two separate TCP connections, and apply the TCP and HTTP optimization techniques in the TCP stack towards the client. The split TCP connections isolate impacts of packet errors and delay variability for the wireless link from the wired connection, so that TCP congestion control, timeout, and retransmission mechanisms in the wired link do not suffer from the fluctuating quality of the radio channel.
note_smallImportant: In this release TPO optimizes only downlink radio usage.
 
TPO Optimization Model
 
Feature Specifications
This section describes features of the TPO in-line service.
 
Licensing
TPO is a licensed in-line service feature requiring the following license to be installed on the chassis:
Cisco PID [ ASRK-00-CS0ITRPO ] Traffic Packet Optimization,1K sessions, or Starent part number [ 600-00-7523 ] Optimization.
For information on obtaining and installing licenses, refer to the Managing License Keys section of the Software Management Operations chapter in the System Administration Guide.
 
Supported Standards
TPO is based on the following RFCs and standards:
 
 
TCP Optimization
To improve TCP performance over wireless links TPO uses TCP optimization techniques that enable:
 
 
TCP Optimization Techniques
This section describes the TCP optimization techniques supported by TPO.
Selection of the optimization techniques to gain TCP performance depends on the network characteristics and the prevalent wireless conditions. To trigger appropriate congestion control techniques for a given situation based on the wireless events, TPO utilizes available information such as subscriber QoS, system load, and so on.
 
Optimizations in TCP Three-way Handshake
During TCP Three-way Handshake, the TCP client and server negotiate to establish a connection. TCP requires three round-trip time (RTT) measurements between the client and server before data transfer is initiated. Determining the RTT adds extra time for each wireless connection.
TPO supports the following optimizations during TCP Three-way Handshake:
 
 
Optimizations in TCP Slow Start Phase
During TCP Slow Start phase, to discover available bandwidth for a connection, TCP calculates the lowest possible bandwidth and increases exponentially until a packet loss is detected. In wireless environments, this phase implies periods during which the link is under-utilized and perceived by the subscribers as slow.
TPO supports the following fast start techniques:
 
The subscriber QoS information is received from the AAA/OCS.
 
Optimizations in TCP Congestion Avoidance Phase
In the TCP Congestion Avoidance phase, TCP after detecting available bandwidth for a new connection linearly adjusts the congestion window to discover incremental bandwidth.
TPO allows to configure any of the following congestion control algorithms:
 
 
Fast Retransmits
To guarantee reliability of transfers, TCP requires the Receiver to respond to the Sender with an acknowledgment for each segment it receives. The Sender keeps a record of each segment it sends, and waits for an acknowledgment before sending the next segment. If the Sender does not receive an acknowledgment within the timeout period, under the assumption that the segment was lost in the network, the Sender fast-retransmits that segment (that is, retransmit without waiting for retransmission timeout (RTO)).
The Receiver will generate duplicate acknowledgements for every out-of-order (OOO) packet it receives. If the Sender receives three duplicate acknowledgements with the same acknowledgement number (that is, a total of four acknowledgements with the same acknowledgement number), the Sender decides that the segment with the next higher sequence number was dropped, and will not arrive out of order. The Sender will then fast-retransmit that segment.
TPO supports the following optimization with fast retransmits:
 
However, note that a higher static value will sometimes lead to not reaching the threshold because of less number of in-flight packets (which will roughly determine the number of duplicate ACKs received by the sender).
 
TCP Handoff Optimization
TPO supports intra-tech and inter-tech handoff events.
When an intra-tech handoff is detected, TPO takes the following actions:
 
1.
2.
3.
4.
5.
6.
When an inter-tech handoff is detected, TPO takes the following actions:
 
1.
2.
Enabling/disabling TCP Handoff Optimization is a CLI-configurable parameter.
 
Retransmission Timeout Optimizations
TPO allows to configure the scaling factor for Round Trip Time Variation (RTTVAR). The configured scaling factor is used as a power of 2, so values of 0 through 4 correspond to 1, 2, 4, 8, and 16. In TCP RTO is calculated using the following formula:
RTO = SRTT + K*RTTVAR
where:
 
SRTT = mean Round Trip Time (RTT)
RTTVAR = Round Trip Time Variation
As wireless networks exhibit high RTT variation, the value of K is configurable. The value of K decides the extent to which Retransmission Timeout (RTO) timer depends on RTT variance. If RTT variance is higher, then K should be higher. The default RTTVAR scaling value, as recommended by RFC 2988, is 2.
TPO also allows to configure the RTO retransmission back-off factor. Once RTO fires for a packet, TCP will retransmit that packet and set the RTO to be a factor X, which is CLI-configurable, of the previous RTO. The default RTO backoff value, as recommended by RFC 5681 is 2.0.
 
Duplicate Selective Acknowledgement Support
Duplicate Selective Acknowledgement (D-SACK), an extension to SACK, allows the TCP receiver to report duplicate segment that it receives so the sender can infer when it has unnecessarily retransmitted a packet. Once D-SACK has been detected by the TCP sender, it can take necessary actions to reduce the spurious retransmissions.
The primary cause of these retransmissions could be network re-ordering resulting in three duplicate acknowledgements (Fast Retransmits) based retransmission, or due to a sudden change in network latency resulting in RTO being triggered.
D-SACK uses the first block of SACK option to specify the sequence numbers for the duplicate segment that triggers the acknowledgement. The TCP receiver sends a D-SACK when a segment is received with sequence numbers lower than the cumulative acknowledgment. D-SACK block also reports duplicate segment from (possibly larger) block of data in the receiver buffer above the cumulative acknowledgement, and here the second SACK block (the first non D-SACK block) specifies this (possibly larger) block.
In this release, TPO only addresses spurious retransmissions caused by three duplicate acknowledgements (Fast Retransmits). This is done by changing the Fast Retransmit threshold to an appropriate value higher than the default value of 3.
On detecting a D-SACK block, the TCP sender starts to monitor the reordering in the network and changes the fast retransmission threshold accordingly to avoid spurious fast retransmissions due to reordering. Every duplicate acknowledgement received after detecting a D-SACK block is considered as acknowledgement to an out-of-order segment. So when a duplicate acknowledgement is received the maximum reordering in the network is calculated using the SACK blocks received since the SACK block contains information about the out-of-order segments that are successfully received by the TCP receiver. A version of this calculated level of reordering is used to tune the Fast Retransmit threshold. After the Fast Retransmit threshold is changed, the successful acknowledgements (for in-order segments) is also continuously monitored and is used to further tune this threshold to an appropriate value. This results in achieving a threshold that correctly reflects network reordering.
Another action that is taken on detecting D-SACK is to adjust the congestion window. On retransmitting a packet (fast-retransmit) TCP sender reduces/adjusts the congestion window (as per the Congestion Control algorithm). When D-SACK is detected, it would mean that the retransmission was spurious and the reduction/adjustment in congestion window that was done was unnecessary and it could be set back to the original value.
 
HTTP Optimizations
To optimize incoming HTTP payload over TCP connections TPO uses HTTP optimization techniques that enable:
 
 
HTTP Optimization Techniques
This section describes HTTP optimization techniques supported by TPO.
 
HTTP Compression
The HTTP Compression feature enables to compress HTTP content transferred to the mobile client. HTTP Compression, by reducing the amount of traffic to be transported, enables better use of available bandwidth and improves transmission speeds.
note_smallImportant: In this release TPO supports only the standards-based gzip compression algorithm.
Note that TPO will not attempt compression in the following cases:
 
Enabling/disabling the HTTP Compression feature is a CLI-configurable parameter. By default HTTP Compression is disabled.
Compression level is a CLI-configurable parameter. Compression levels 1 through 9 are supported. The higher the compression level, the better the compression efficiency but with increased CPU and memory utilization. By default the compression level is set to 6.
TPO supports Prevention of Compression at the Web server. This enables TPO to receive uncompressed data from the Web server, on which it can apply other HTTP optimization techniques, and then compress the optimized data and send it to the mobile client. TPO achieves this by manipulating the HTTP requests. Enabling/disabling this feature is a CLI-configurable parameter. By default, the Prevention of Server Compression feature is disabled.
The following figure and steps explain how the HTTP Compression feature works:
 
HTTP Compression
1.
2.
3.
If the Web server supports the compression schema(s) in the Accept-Encoding field, in the HTTP response the Web server may send the compressed data, and include the Content-Encoding field with name(s) of the compression schema(s) used. TPO forwards the HTTP response to the mobile client.
4.
If the comparison is favorable, TPO forwards the compressed response to the mobile client, and any subsequent response packets are also compressed. TPO updates the Content-Encoding field with name(s) of the compression schema(s) used. The mobile client’s browser parses the requested data and displays it.
If the comparison is not favorable, TPO forwards the original response to the mobile client and then forwards any subsequent response packets.
 
URL Rewrite
The URL Rewrite feature enables to preemptively resolve host names in embedded URLs present within HTML content and rewrite them with resolved IP addresses. This rewriting helps to eliminate DNS round trips in high latency mobile networks resulting in faster responses.
Enabling/disabling the URL Rewrite feature is a CLI-configurable parameter. By default the URL Rewrite feature is disabled.
note_smallImportant: The URL Rewrite feature needs a valid DNS client to be configured in the ISP (destination) context.
When the URL Rewrite feature is enabled, TPO rewrites URLs of the following format
http://<host_name[:port]>/<url_path>/<file_name.extension>
into
http://<resolved_ip_address[:port]>/<url_rewrite_prefix>/<host_name[:port]>/<url_path>/<file_name.extension>
For example, if the URL Rewrite prefix is urlrewrite, TPO rewrites the URL
http://www.google.com/test.img
into
http://209.85.153.103/urlrewrite/www.google.com/test.img
When the mobile client requests for the URL
http://<resolved_ip_address[:port]>/<url_rewrite_prefix>/<host_name[:port]>/<url_path>/<file_name.extension>
TPO rewrites the URL back to
http://<host_name[:port]>/<url_path>/<file_name.extension>
The URL Rewrite prefix is a CLI-configurable parameter. By default, the prefix is set to “urlrewrite”.
URL Rewrite works only on HTML content, hence it is called only in the following cases:
 
TPO rewrites only those URLs that are present in the following HTML tags:
 
note_smallImportant: URLs that are part of JavaScript and VBScript are not rewritten. If an HTML tag spans across packets, TPO will queue only two packets and will rewrite the URL if found.
The following figure and steps explain how the HTTP URL Rewrite feature works:
 
HTTP URL Rewrite
1.
2.
3.
4.
5.
6.
7.
8.
9.
In case both HTTP Compression and URL Rewrite features are enabled, URL Rewrite processing will happen before HTTP Compression.
 
Advertisement Filter
The Advertisement Filter feature enables to block advertisement content in Web pages delivered to mobile clients. This filtering reduces over-the-air bandwidth usage as advertisements are not always downloaded, and faster response times as advertisement-related server connections are eliminated.
note_smallImportant: In this release, TPO considers only images and Flash objects as advertisements.
TPO is configured with URLs of the advertisement sites to be blocked, typically sites such as www.doubleclick.net/*, ad.yahoo.com, and so on. When the mobile client’s browser receives HTML content, it parses the HTML and sends out requests for images and other content. If there is a request for an image or Flash object whose URL matches any of the URLs to be blocked, TPO blocks the advertisement as per the configuration.
The Advertisement Filter feature supports the following advertisement blocking methods:
 
To enable retrieving the blocked advertisement, in the HTTP request a bypass string is added to the advertisement’s URL, which TPO interprets and forwards to the Web Server allowing the advertisement to be retrieved. The bypass string is a CLI-configurable parameter.
The background color of the placeholder frames and the text displayed in them are CLI-configurable parameters. Operators can use the text to indicate that the advertisement is blocked. Note that different text strings can be configured for “Advertisement Blocking with Text” and “Advertisement Blocking with On-click Function” configurations.
note_smallImportant: The text string and URL displayed in the placeholder frames may be truncated to fit dimensions of the frames.
note_smallImportant: The “Advertisement Blocking with Text” and “Advertisement Blocking with On-click Function” Advertisement Filter functionality is achieved using JavaScript code sent from TPO and executed whenever a Web page is loaded in the mobile client’s browser. If the mobile client’s browser does not support JavaScript or the subscriber has disabled JavaScript, instead of the placeholder frames the subscribers will see the “cannot display image” icons.
 
Basic Advertisement Blocking
The following figure and steps explain how the basic advertisement blocking feature works.
 
Basic Advertisement Blocking
If there is a match, TPO responds with Content-Length 0 for the request thereby blocking the advertisement. In the mobile client’s browser, the image or Flash object is replaced with the “cannot display image” icon.
 
Advertisement Blocking with On-click Function
The following figure and steps explain how the Advertisement Blocking with On-click feature works.
 
Advertisement Blocking with On-click Function
 
1.
2.
3.
4.
5.
6.
7.
When the subscriber clicks the placeholder frame for a blocked image or Flash object, the mobile client’s browser sends an HTTP request with a bypass string appended to the requested URL.
8.
9.
10.
 
Session Recovery
The Session Recovery feature provides seamless failover and reconstruction of subscriber session information in the event of a hardware or software fault within the system preventing a fully connected user session from being disconnected.
Session recovery is performed by mirroring key software processes (for example, Session Manager and AAA Manager) within the system. These mirrored processes remain in an idle state (in standby-mode), wherein they perform no processing, until they may be needed in the case of a software failure (for example, a Session Manager task aborts). The system spawns new instances of “standby mode” session and AAA Managers for each active Control Processor (CP) being used.
Additionally, other key system-level software tasks, such as VPN Manager, are performed on a physically separate packet processing card to ensure that a double software fault (for example, Session Manager and VPN Manager fails at same time on same card) cannot occur. The packet processing card used to host the VPN Manager process is in active mode and is reserved by the operating system for this sole use when session recovery is enabled.
For more information on Session Recovery, refer to the Session Recovery chapter in the System Administration Guide.
 
Inter-Chassis Session Recovery
note_smallImportant: TPO-ICSR support is available only in 12.2 and later releases.
The ASR 5000 chassis provides industry leading carrier class redundancy. The system protects against all single points of failure (hardware and software) and attempts to recover to an operational state when multiple simultaneous failures occur.
The Inter-chassis Session Recovery (ICSR) feature allows for continuous call processing without interrupting subscriber services. This is accomplished through the use of redundant chassis. The chassis are configured as primary and backup with one being active and one in recovery mode. A checkpoint duration timer is used to control when subscriber data is sent from the active chassis to the inactive chassis. If the active chassis handling the call traffic goes out of service, the inactive chassis transitions to the active state and continues processing the call traffic without interrupting the subscriber session. The chassis determines which is active through a propriety TCP-based connection called a redundancy link. This link is used to exchange hello messages between the primary and backup chassis and must be maintained for proper system operation.
When configured, the TPO policy ID mapping (TPO policy name and TPO policy ID) is exchanged from the active SessMgr to the standby SessMgr. The microcheckpoint records from the active SessMgr to the standby SessMgr for every session only contains the TPO policy ID instead of the bigger sized TPO policy name. This TPO policy ID in the microcheckpoint is used to look up the TPO policy ID mapping at the standby SessMgr to get back the TPO policy name for the session.
For more information on ICSR, refer the Interchassis Session Recovery chapter in the System Administration Guide.
 
TPO Administration
This section describes TPO administration activities and covers the following topics:
 
 
Disabling/Enabling TPO Optimizations
The TPO in-line service allows to disable/continue TPO optimizations when a peer-to-peer (P2P) flow is detected. This is a CLI-configurable feature.
note_smallImportant: In this release, on disabling TPO optimizations only TCP-based optimizations are disabled. Disabling HTTP-based optimizations will be supported in a future release.
 
MUR Reporting for TPO
This section lists the EDR fields supported for TPO - MUR integration.
The Mobility Unified Reporting (MUR) is a Web-based application providing a unified reporting interface for a variety of data from Cisco Systems in-line service and storage applications. For more information on the MUR, see the Mobility Unified Reporting System Online Help.
The following are the EDR generation points:
 
The following EDR fields are supported for TPO - MUR integration:
 
 
Switching TPO Policy
TPO allows to switch a TPO policy in use with a different TPO policy.
note_smallImportant: The switch takes effect only on current calls. For new calls, the RADIUS-returned/APN/subscriber template configured policy is used.
To be able to change the TPO policy in mid session, TPO must have been enabled for the subscriber in the APN/Subscriber template configuration during call setup.
The CLI indicates the number of sessions for which the policy got switched.
 
How TPO Works
This section describes how TPO works.
 
Terms and Definitions
The following is a list of terms specific to TPO functionality:
 
The TPO policy to be used for a subscriber can be from one of the following:
note_smallImportant: The TPO policy received from the AAA and OCS have the same priority. Whichever comes first, either from AAA or the OCS, is applied.
A maximum of 2048 TPO policies can be configured in the system.
In 12.2 and later releases, both charging and TPO ruledefs can be used in match-rule and match-ad configurations. However, ruledef/group-of-ruledef statistics will be computed only for TPO ruledefs. Charging ruledefs/group-of-ruledefs are allowed only to provide backward compatibility and statistics are not computed in this case. It is recommended that TPO ruledefs be used within TPO policies so that rule statistics are available.
 
TPO Processing
TPO can be enabled in either of the following ways:
 
 
Policy-based TPO Processing
The following steps describe how policy-based TPO processing works:
 
1.
2.
3.
During the course of a flow, first the match-rule logic is applied at SYN time — this mostly results in a default match-rule that selects the default TPO profile. This is because many of the match-rule conditions would not apply at SYN time. The match-rule is generally more useful with deep-packet inspection (DPI). During DPI, when the complete HTTP header information is received, the match-rule is invoked and a new TPO profile (if any) is obtained and applied. This new TPO profile (selected during DPI) will be used to perform HTTP optimization. However, the original TPO profile selected during SYN time will be used for TCP optimization.
If the first SYN does not match any TPO profile (in the absence of a default match rule), TPO is not applied to that flow. In 12.0 and later releases, with dynamic TCP Proxy this is no longer the case.
note_smallImportant: The match-rule is also invoked after the HTTP request line is received. At this time, a TPO profile is used to only apply the advertisement block rule (if any). This is required to block any unwanted HTTP request packets for and advertisement site that could be potentially sent to the server. None of the other rules are applied even if present in the profile.
 
Charging Action Based TPO Processing
The following steps describe how charging action based TPO processing works:
 
1.
2.
3.
note_smallImportant: In this release, when the TPO profile specified by a charging action is applied on a flow, only TCP optimizations and the decision to cease/continue TPO optimizations for P2P flows will be controlled by that TPO profile. HTTP optimizations will not be affected.
When the TPO profile specified by a charging action is applied on a flow, and subsequently a different charging action that does not have a TPO profile configured in it is applied on the same flow, TPO will not be disabled.
 
 

Cisco Systems Inc.
Tel: 408-526-4000
Fax: 408-527-0883